<h2>Why is this an issue?</h2>
<p>While it is technically correct to assign to parameters from within method bodies, doing so before the parameter value is read is likely a bug.
Instead, initial values of parameters should be, if not treated as <code>readonly</code> then at least read before reassignment.</p>
<h3>Noncompliant code example</h3>
<pre>
Module Module1
    Sub Foo(ByVal a As Integer)
        a = 42                  ' Noncompliant
    End Sub
End Module
</pre>
<h3>Compliant solution</h3>
<pre>
Module Module1
    Sub Foo(ByVal a As Integer)
        Dim tmp = a
        tmp = 42
    End Sub
End Module
</pre>
<h3>Exceptions</h3>
<p><code>ByRef</code> parameters are ignored.</p>
<pre>
Module Module1
    Sub Foo(ByRef a As Integer)
        a = 42                  ' Ignored; it is a ByRef parameter
    End Sub
End Module
</pre>

